home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacApp Release 10 / MacApp Release 10 - HD Ready / Libraries / Views / Sources / UGrabberTracker.cp < prev    next >
Encoding:
Text File  |  1996-04-03  |  4.3 KB  |  147 lines  |  [TEXT/MPS ]

  1. //----------------------------------------------------------------------------------------
  2. // UGrabberTracker.cp
  3. // Copyright © 1988-96 by Apple Computer, Inc. All rights reserved.
  4. //----------------------------------------------------------------------------------------
  5.  
  6. #ifndef __UGRABBERTRACKER__
  7. #include "UGrabberTracker.h"
  8. #endif
  9.  
  10. // MacApp
  11.  
  12. #ifndef __UDOCUMENT__
  13. #include "UDocument.h"
  14. #endif
  15.  
  16. #ifndef __UGEOMETRY__
  17. #include "UGeometry.h"
  18. #endif
  19.  
  20. #ifndef __UMACAPPUTILITIES__
  21. #include "UMacAppUtilities.h"
  22. #endif
  23.  
  24. #ifndef __USCROLLER__
  25. #include "UScroller.h"
  26. #endif
  27.  
  28.  
  29.  
  30. //========================================================================================
  31. // CLASS TGrabberTracker
  32. //========================================================================================
  33. #undef Inherited
  34. #define Inherited TTracker
  35.  
  36. #pragma segment GrabberDoCommand
  37. MA_DEFINE_CLASS_M1(TGrabberTracker, Inherited);
  38.  
  39. //----------------------------------------------------------------------------------------
  40. // TGrabberTracker::TGrabberTracker: Empty constructor to satisfy the compiler.
  41. //----------------------------------------------------------------------------------------
  42. #pragma segment ConstructorRes
  43.  
  44. TGrabberTracker::TGrabberTracker()
  45. {
  46. } // TGrabberTracker::TGrabberTracker
  47.  
  48. //----------------------------------------------------------------------------------------
  49. // TGrabberTracker destructor
  50. //----------------------------------------------------------------------------------------
  51. #pragma segment MADestructorRes
  52.  
  53. TGrabberTracker::~TGrabberTracker()
  54. {
  55. }
  56.  
  57. //----------------------------------------------------------------------------------------
  58. // TGrabberTracker::IGrabberTracker: 
  59. //----------------------------------------------------------------------------------------
  60. #pragma segment GrabberDoCommand
  61.  
  62. void TGrabberTracker::IGrabberTracker(CommandNumber itsCommandNumber,
  63.                                              TDocument* itsDocument,
  64.                                              TView* itsView,
  65.                                              TScroller* itsScroller,
  66.                                              const VPoint& itsMouse)
  67.  
  68. {
  69.     this->ITracker(itsCommandNumber, itsDocument, kCantUndo, kDoesNotCauseChange, itsDocument, 
  70.                     itsView, itsScroller, itsMouse);
  71. } // TGrabberTracker::IGrabberTracker 
  72.  
  73. //----------------------------------------------------------------------------------------
  74. // TGrabberTracker::TrackMouse: 
  75. //----------------------------------------------------------------------------------------
  76. #pragma segment GrabberDoCommand
  77.  
  78. TTracker* TGrabberTracker::TrackMouse(TrackPhase aTrackPhase,
  79.                                              VPoint& anchorPoint,
  80.                                              VPoint& previousPoint,
  81.                                              VPoint& nextPoint,
  82.                                              Boolean mouseDidMove)// override 
  83.  
  84. {
  85.     switch (aTrackPhase)
  86.     {
  87.         case trackBegin:
  88.             break;
  89.  
  90.         case trackContinue:
  91.             if (mouseDidMove)
  92.             {
  93.                 VPoint delta = - fScroller->fTranslation;
  94.  
  95.                 delta.ConstrainTo(VRect(anchorPoint - nextPoint, fScroller->fMaxTranslation - fScroller->fTranslation));
  96.  
  97.                 if (delta != gZeroVPt)
  98.                 {
  99.                     fScroller->ScrollBy(delta, TRUE);
  100.                     fScroller->Update();
  101.                 }
  102.  
  103.                 nextPoint += delta;
  104.  
  105.                 previousPoint = nextPoint;
  106.                 anchorPoint = nextPoint;
  107.             }
  108.             break;
  109.  
  110.         case trackEnd:
  111.             break;
  112.     }                                            // switch 
  113.     return this;                                // keep tracking with me 
  114. } // TGrabberTracker::TrackMouse 
  115.  
  116. //----------------------------------------------------------------------------------------
  117. // TGrabberTracker::TrackFeedback: 
  118. //----------------------------------------------------------------------------------------
  119. #pragma segment GrabberDoCommand
  120.  
  121. void TGrabberTracker::TrackFeedback(TrackPhase /* aTrackPhase */,
  122.                                         const VPoint& /* anchorPoint */,
  123.                                         const VPoint& /* previousPoint */,
  124.                                         const VPoint& /* nextPoint */,
  125.                                         Boolean /* mouseDidMove */,
  126.                                         Boolean /* turnItOn */)// override
  127.  
  128. {
  129.     // NO feedback please 
  130. } // TGrabberTracker::TrackFeedback 
  131.  
  132. //----------------------------------------------------------------------------------------
  133. // TGrabberTracker::AutoScroll: 
  134. //----------------------------------------------------------------------------------------
  135. #pragma segment GrabberDoCommand
  136.  
  137. void TGrabberTracker::AutoScroll(const VPoint& /* delta */)// override
  138.  
  139. {
  140.     // NO AutoScroll please 
  141. } // TGrabberTracker::AutoScroll 
  142.  
  143. //----------------------------------------------------------------------------------------
  144. // End of UGrabberTracker.cp
  145.  
  146. #pragma segment Inline
  147.